package org.fastsyncer.manager;

import org.fastsyncer.parser.Connector;
import org.fastsyncer.parser.Mapping;

import java.util.List;

/**
 * @author AE86
 * @version 2.0.0
 * @date 2019/9/30 20:31
 */
public interface Manager {

    /**
     * 检查连接器是否可用
     *
     * @param json
     * @return
     */
    boolean alive(String json);

    /**
     * 保存连接器
     * @param json
     * @return
     */
    String saveConnector(String json);

    /**
     * 保存驱动
     * @param json
     */
    String saveMapping(String json);

    /**
     * 删除连接器
     * @param connectorId
     */
    void removeConnector(String connectorId);

    /**
     * 删除驱动
     * @param mappingId
     */
    void removeMapping(String mappingId);

    /**
     * 获取所有连接器
     * @return
     */
    List<Connector> getConnectorAll();

    /**
     * 获取所有驱动
     * @return
     */
    List<Mapping> getMappingAll();

    /**
     * 启动驱动
     * @param mappingId
     */
    void start(String mappingId);

    /**
     * 停止驱动
     * @param mappingId
     */
    void stop(String mappingId);

}
